package com.xpalive.config.spring.Respbody;

import com.xpalive.config.spring.MvcConfig;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.List;

import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.TYPE;

/**
 * <pre>
 * 包装注解，通过此注解可以自动包装返回结果值为RespResult类型
 * 需要ControllerRespAdvice配合使用
 * 如果返回值是String,MessageConverters 会优先使用StringHttpMessageConverter
 * 解决：配置MessageConverters，重新调整StringHttpMessageConverter顺序（删除StringHttpMessageConverter，再添加StringHttpMessageConverter）
 * [{@link MvcConfig#extendMessageConverters(List)}]
 * </pre>
 */
@Target({TYPE, METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RespResultWrap {

    boolean active() default true;
}
